
# 异常和错误
"""
代码的运行逻辑 ：
    1. 先检查编写代码的语法格式 ，若出现此类问题 ，直接报错(错误)
    2. 运行过程中出现了报错（编写者没有考虑到或外部环境发生变化） -- 异常

错误 ： 编写代码触发了python硬性规定，一般编辑器中都会有红色的波浪线或标识error.
    比如 ： 不能使用关键字定义变量名，缩进问题 ，传递数量不一致

异常的处理方式：
try:
    可能执行错误的代码块
except:
    对错误代码进行处理


异常类型 ：
在异常中有很多中异常类型，若你能更准确的知道异常类型的话 ，就可以提示更准确 。
报什么类型的错 ，加入什么类型的异常 。

若在运行代码过程中，希望某段代码必须运行 ，就可以使用finally关键字，将这段代码放在finally中。 往往关闭资源的代码需要finally语句。
except语句和fially语句之间不能编写其它代码。
"""

filename = 'b.txt'
f = None

try:
    # 1. 打开文件
    f = open(filename)

    # 2. 读取文件内容
    content = f.read()
    print("读取出文件内容的类型:{}".format(type(content)))
    print(content)
except FileNotFoundError as e:
    print("文件不存在，请检查文件名或文件路径：{}".format(e))

except UnicodeDecodeError as e:
    print("文件编码异常:{}".format(e))

except Exception as e:
    print("未知错误:{}".format(e))

finally:
    # 3. 关闭文件
    if f:
        f.close()

print("========================")